#!/usr/bin/python
# -*-coding: UTF-8 -*-
"""
# Time: 2021/10/31 9:46
# @Author: 修养
# @Project_name: PROJECT_NAME
"""
lists = ['李凡', '亦可']
print('初始列表：', lists)
lists[0] = '张小凡'
print('修改第一个元素为张小凡：', lists)
lists.append('文书')
print('追加元素文书：', lists)
lists.insert(0, '秋白')
print('索引为0的位置插入元素为秋白：', lists)


print("~~~~~~~~2、删除元素~~~~~~~~~")
lists = ['宋江', '武松', '铁牛', '武大郎']
print('初始元素列表：', lists)
del lists[3]
print('删除索引为3武大郎元素：', lists)
element = lists.pop()
print('默认弹出的元素为：', element)
print('弹出默认元素后：', lists)
element0 = lists.pop(0)
print('弹出指定索引为0的元素：', element0)
print(lists)
lists.remove('武松')
print('删除值为武松的元素：', lists)

print('~~~~~~~~~~~3、统计：元素出现、个数、长度~~~~~~~~~~~~')
lists = [0, 1, '2', '2']
n = len(lists)
print('列表长度：', n)
b = 2 in lists
print('整数2出现在列表中：', b)
b = '2' in lists
print('字符’2‘出现在列表中：', b)
b = 0 not in lists
print('整数0 不在列表中：', b)
index = lists.index('2')
print('字符2出现在列表中的索引值：', index)
n = lists.count('2')
print('统计字符’2‘出现的次数：', n)

print('~~~~~~~~~~~~4、遍历元素~~~~~~~~~~~')
lists = ['叶青云', '白九霄', '木千辰']
print('通过遍历列表长度，索引得到元素：', end='')
for i in range(len(lists)):
    print(lists[i], end=' ')
print()
print('直接遍历列表：', end=' ')
for element in lists:
    print(element, end=' ')

print()
print("~~~~~~~~~~5、列表排序~~~~~~~~~~~~~~~~~")
lists = [12, 4, 6, 0, 2]
print('初始列表：', lists)
lists.sort()
print('顺序排序后列表：', lists)
lists.sort(reverse=True)
print('逆序排序后的列表：', lists)
lists = [3, 7, 2, 3]
new_lists = sorted(lists)
print('源列表：', lists)
print('顺序排序后的新列表：', new_lists)
new_lists = sorted(lists, reverse=True)
print('逆序排序后的新列表：', new_lists)

print('~~~~~~~~~~~~6、列表的扩充~~~~~~~~~~~~~~~')
lists0 = ['李春水', '沐夏风', '闻秋叶', '林冬雪']
lists1 = ['春分', '夏至', '秋分', '冬至', '林冬雪']
print('lists0: ', lists0)
print('lists1', lists1)
add_lists = lists0 + lists1
print('连接后的元素：', add_lists)
lists0.extend(lists0)
print('将列表lists1添加到list0中：后的lists0: ', lists0)
print('lists1: ', lists1)

print("~~~~~~~~~~~~~6、列表切片~~~~~~~~~~")
lists = ['春分', '夏至', '秋分', '冬至', '清明', '小雪']
print('初始列表：', lists)
print(lists[0:3:1])
print(lists[:2])
print(lists[::2])

print('~~~~~~~~~~7、列表的复制、删除~~~~~~~~~')
lists = ['春分', '夏至', '秋分', '冬至', '清明', '小雪']
print("初始列表：", lists)
lists_0 = lists.copy()
print('复制的列表：', lists_0)
del lists_0[:]
print('清空所有列表元素：', lists_0)
# del lists_0
# print('删除列表对象：', lists_0)
lists.clear()
print('清空列表：', lists)

print('~~~~~~~~~~~~~~~~~8、数值列表~~~~~~~~~~~~~~~~')
lists = eval(input('请输入一个数字列表：'))
print('输入[1, 2, 3] lists是列表：<class list>: ', lists)
print('输入的list类型：', type(lists))
print('输入：1, 2, 3: 时，lists是元组： <class tuple>')
print('range函数转为列表：', list(range(1, 6)))
lists = [x * y for x in range(1, 3) for y in range(1, 3)]
print(lists)
print('数值列表最大值：', max(lists))
print('数值列表最小值：', min(lists))
print('数值列表和：', sum(lists))
